# 需要设置-》选项-》大型作战设置-》信标数据收集提示：关
from util import *
from const import const

def missionProcess():
    """ 任务出击步骤 """
    util.logOut(__file__,'------------任务出击开始-----------')
    x, y = const.picLoop(const.publicPath() + 'operation/' + 'enter_sea.jpg')
    util.click(x, y)
    time.sleep(4)
    util.logOut(__file__,'------------判断行动力 开始-----------')
    if util.isFindPic(const.publicPath() + 'operation/' + 'use.jpg'):
        util.logOut(__file__,'------------行动力不足-----------')
        x, y = const.picLoop(const.publicPath() + 'operation/' + 'use.jpg')
        util.click(x, y)
        util.click(x, y)
        util.click(x, y)
        util.click(x, y)
        util.click(x, y)
        x, y = const.picLoop(const.publicPath() + 'bmp/quit.jpg')
        util.click(x, y)
        x, y = const.picLoop(const.publicPath() + 'operation/' + 'enter_sea.jpg')
        util.click(x, y)
    # TODO 这个自律应该设置为自动出击 不去手动点
    x, y = const.picLoop(const.publicPath() + 'bmp/zilv.jpg')
    time.sleep(4)
    util.click(x, y)

    while True:
        x, y, url = const.picMulLoop([
            const.publicPath() + 'bmp/leave.jpg', # 正常结束
            const.publicPath() + 'operation/' + 'is_talk.jpg', # 探测点的情况
            # TODO 这个i_known有点问题 会误判
            const.publicPath() + 'bmp/i_known.jpg', # 大舰队的弹框 你妈的
        ], timeSec = 15*60)
        if url == const.publicPath() + 'bmp/leave.jpg':
            util.click(x, y)
            break
        elif url == const.publicPath() + 'operation/' + 'is_talk.jpg':
            util.click(x, y)
            continue
        elif url == const.publicPath() + 'bmp/i_known.jpg':
            util.click(x, y)
            continue

    util.logOut(__file__,'------------任务出击结束-----------')

def main():
    time.sleep(2)
    util.logOut(__file__,'大世界每日 开始')

    #返回主页面
    const.backMainProcess()
    #进入出击界面
    x, y = const.picLoop(const.publicPath() + 'bmp/weigh anchor.jpg')
    util.click(x, y)
    x, y, url = const.picMulLoop([
        const.publicPath() + 'beacon/operation.jpg', # 大世界
        const.publicPath() + 'bmp/withdraw.jpg', # 在图里
    ])
    if url == const.publicPath() + 'beacon/operation.jpg':
        pass
    elif url == const.publicPath() + 'bmp/withdraw.jpg':
        util.click(x, y)
        x, y = const.picLoop(const.publicPath() + 'bmp/OK.jpg')
        util.click(x, y)
        const.backMainProcess()
        x, y = const.picLoop(const.publicPath() + 'bmp/weigh anchor.jpg')
        util.click(x, y)
        x, y = const.picLoop(const.publicPath() + 'beacon/operation.jpg')
    util.click(x, y)

    # 领取任务
    util.logOut(__file__,'------------领取任务开始-----------')
    x, y = const.picLoop(const.publicPath() + 'beacon/overview.jpg')
    util.click(x, y)
    x, y = const.picLoop(const.publicPath() + 'operation/' + 'missions.jpg')
    util.click(x, y)
    const.picLoop(const.publicPath() + 'bmp/back.jpg')
    x, y = util.findPic(const.publicPath() + 'operation/' + 'accept_all.jpg')
    if x != -1 and y != -1:
        util.click(x, y)
    x, y = const.picLoop(const.publicPath() + 'bmp/back.jpg')
    util.click(x, y)
    x, y = const.picLoop(const.publicPath() + 'operation/' + 'back_home.jpg')
    util.click(x, y)
    const.picLoop(const.publicPath() + 'beacon/overview.jpg')
    util.logOut(__file__,'------------领取任务结束-----------')

    # 兑换任务
    util.logOut(__file__,'------------兑换任务开始-----------')
    x, y = const.picLoop(const.publicPath() + 'operation/' + 'details.jpg')
    util.click(x, y)
    const.picLoop(const.publicPath() + 'operation/' + 'is_details.jpg')
    # TODO get_task可能识别失败 明明有的 但是识别不出来
    while util.isFindPic(const.publicPath() + 'operation/' + 'get_task.jpg'):
        x, y = const.picLoop(const.publicPath() + 'operation/' + 'get_task.jpg')
        util.click(x, y)
        x, y = const.picLoop(const.publicPath() + 'bmp/OK.jpg')
        util.click(x, y)
        x, y = const.picLoop(const.publicPath() + 'bmp/get_items.bmp')
        util.click(x, y)
        const.picLoop(const.publicPath() + 'operation/' + 'is_details.jpg')
    util.logOut(__file__,'------------兑换任务结束-----------')

    # 出击任务
    util.logOut(__file__,'------------出击任务开始-----------')
    size = (0, 0, 0, 0)
    while util.isFindPic(const.publicPath() + 'operation/' + 'not_NA_Center.jpg', size=size): # 去除NA海域中心的情况
        x, y = const.picLoop(const.publicPath() + 'operation/' + 'not_NA_Center.jpg', size=size)
        util.click(x + 100, y)
        time.sleep(2)

        util.logOut(__file__,'------------判断任务能否出击-----------')
        if util.isFindPic(const.publicPath() + 'operation/' + 'is_map.jpg'):
            util.logOut(__file__,'------------任务不能出击，跳过-----------')
            util.click(433, 462)
            const.picLoop(const.publicPath() + 'beacon/overview.jpg')
            x, y = const.picLoop(const.publicPath() + 'operation/' + 'details.jpg')
            util.click(x, y)
            const.picLoop(const.publicPath() + 'operation/' + 'is_details.jpg')
            size = (0, y + 10, 864, 486)
            continue
        elif util.isFindPic(const.publicPath() + 'operation/' + 'not_NA_Center.jpg', size=size): # 点不进去
            isFind_is_details = True
            for n in range(5):
                util.click(x + 100, y)
                time.sleep(1)
                if not util.isFindPic(const.publicPath() + 'operation/' + 'not_NA_Center.jpg', size=size):
                    util.logOut(__file__,'------------任务不能出击（点不进去），跳过-----------')
                    isFind_is_details = False
                    break
            if isFind_is_details:
                size = (0, y + 10, 864, 486)
                continue
            else:
                pass
        else:
            pass
        missionProcess()
        const.picLoop(const.publicPath() + 'beacon/overview.jpg')
        x, y = const.picLoop(const.publicPath() + 'operation/' + 'details.jpg')
        util.click(x, y)
        const.picLoop(const.publicPath() + 'operation/' + 'is_details.jpg')
    util.click(755, 90) # 任务界面关闭按钮
    const.picLoop(const.publicPath() + 'beacon/overview.jpg')
    util.logOut(__file__,'------------出击任务结束-----------')
    
    # 返回主页
    const.backMainProcess()
